package ops

import (
	"algo-sdk-go/framework/middleware/db/mongodb/dbops"
	"algo-sdk-go/project/matchmaking/common/constant"
	"algo-sdk-go/project/matchmaking/domain/models/valueobject"
)

type Condition struct {
	// 业务 Condition
	UserNumList []int  // 编号
	Gender      string // 性别，男 / 女

	AgeRange      AgeRange    // 年龄要求，年龄范围
	HeightRange   HeightRange // 身高要求，最低身高，单位：cm
	WeightRange   WeightRange // 体重要求，最高体重，单位:斤
	MaritalStatus string      // "未婚"、"离异"、"丧偶"

	EducationRange             EducationRange        // 学历要求，最低学历
	IncomeRange                IncomeRange           // 收入要求，最低收入，单位万元
	Occupation                 string                // 所在行业（支持模糊查询） ，是否体制内
	HometownPreference         []valueobject.Address // 籍贯要求
	CurrentResidencePreference []valueobject.Address // 工作地要求
	ParentsHasPension          bool                  // 父母是否退休,父母是否有养老金

	// 基础限制
	PageNum    int            // 从1开始
	PageSize   int            // 默认20，最大100
	IgnorePage bool           // 默认20，最大100
	SortBy     []dbops.SortBy // 排序方式
	WithStatus bool           // 状态
	WithDelete bool
}

type WeightRange struct {
	MinWeight int
	MaxWeight int
}

type AgeRange struct {
	MinAge int
	MaxAge int
}

type HeightRange struct {
	MinHeight int
	MaxHeight int
}

type EducationRange struct {
	MinEducation constant.Education
	MaxEducation constant.Education
}

type IncomeRange struct {
	MinIncome float64
	MaxIncome float64
}

type AssetsRange struct {
	AnnualIncome float64 // 年收入， 单元: 万元
	Car          int     // 车子状态，全款，按揭，无，随时买
	House        int     // 房子状态
}
